#!/bin/bash
# Copyright (C) 2019 Checkmk GmbH - License: GNU General Public License v2
# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and
# conditions defined in the file COPYING, which is part of this source code package.

# Reason for this no-op: shellcheck disable=... before the first command disables the error for the
# entire script.
:

# Disable unused variable error (needed to keep track of version)
# shellcheck disable=SC2034
CMK_VERSION="2.5.0b1"

#SuSE-release is deprecated and was removed with SLE 15. os-release should be used for the new versions.

RELEASEFILE="/etc/SuSE-release"

if [ -f "/etc/os-release" ]; then
    RELEASEFILE="/etc/os-release"
fi

if type zypper >/dev/null; then
    echo '<<<zypper:sep(124)>>>'
    if grep -E -q 'VERSION = 10|VERSION_ID="10' <$RELEASEFILE; then
        wzypper() { waitmax 50 zypper --no-gpg-checks --non-interactive --terse "$@"; }
        REFRESH="$(wzypper refresh 2>&1)"
        if [ "${REFRESH}" ]; then
            echo "ERROR: ${REFRESH}"
        else
            {
                wzypper pchk
                case "$?" in
                    0 | 100 | 101)
                        wzypper lu
                        ;;
                esac
            } | grep -E '(patches needed|\|)' | grep -v -E '^(#|Repository |Catalog )'
        fi
    else
        wzypper() { waitmax 50 zypper --no-gpg-checks --non-interactive --quiet "$@"; }
        REFRESH="$(wzypper refresh 2>&1)"
        if [ "${REFRESH}" ]; then
            echo "ERROR: ${REFRESH}"
        else
            {
                {
                    wzypper pchk
                    case "$?" in
                        0 | 100 | 101)
                            wzypper lp
                            ;;
                    esac
                }
                wzypper ll
            } | grep -E '(patches needed|\|)' | grep -v -E '^(#|Repository)'
        fi
    fi
fi
